import Axios from 'axios';
import { ElMessage } from 'element-plus';
import { useGlobalStore } from '@/stores/global';

export const uploadURL = 'http://47.106.225.56:6606';

// 开发环境
export const baseURL = 'http://47.106.225.56:6606';
// export const baseURL = 'http://192.168.31.15:6606';
// export const baseURL = 'http://192.168.31.62:6606';


const axios = Axios.create({
	baseURL,
	timeout: 20000 // 请求超时 20s
});

// 前置拦截器（发起请求之前的拦截）
axios.interceptors.request.use(
	response => {
		/**
		 * 根据你的项目实际情况来对 config 做处理
		 * 这里对 config 不做任何处理，直接返回
		 */
		// const global = useGlobalStore();
		// console.log(response);
		// console.log(JSON.stringify(global.userInfo));
		// // console.log(token);
		// let name = computed(() => store.state.routeStatus);
		// // console.log(name);
		// if (localStorage.getItem('open_token')) {
		// 	response.headers['open_client'] = localStorage.getItem('open_token');
		// } else if (token && name != '/login' && name != '/invite') {
		// 	response.headers.Authorization = `Bearer ${token}`;
		// }
		// return response;
		return response;
	},
	error => {
		return Promise.reject(error);
	}
);

// 后置拦截器（获取到响应时的拦截）
axios.interceptors.response.use(
	response => {
		/**
		 * 根据你的项目实际情况来对 response 和 error 做处理
		 * 这里对 response 和 error 不做任何处理，直接返回
		 */
		if ( response.data && response.data.code !== 200 && !response.data.infocode   ) {
			ElMessage.error(response.data.message);
		}
		return response;
	},
	error => {
		if (error.response && error.response.data) {
			const code = error.response.status;
			const msg = error.response.data.message;
			ElMessage.error(`Code: ${code}, Message: ${msg}`);
			console.error(`[Axios Error]`, error.response);
		} else {
			ElMessage.error(`${error}`);
		}
		return Promise.reject(error);
	}
);

export default axios;